/*
 * Copyright (c) 2024 vitasystems GmbH
 *
 * This file is part of project EHRbase Migration Tool
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.ehrbase.migration.importer.v4.jooq.pg.tables.records;

import java.util.UUID;
import org.ehrbase.migration.importer.v4.jooq.pg.tables.EhrFolderData;
import org.jooq.Field;
import org.jooq.JSONB;
import org.jooq.Record15;
import org.jooq.Record3;
import org.jooq.Row15;
import org.jooq.impl.UpdatableRecordImpl;

/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({"all", "unchecked", "rawtypes", "this-escape"})
public class EhrFolderDataRecord extends UpdatableRecordImpl<EhrFolderDataRecord>
        implements Record15<
                UUID,
                Integer,
                UUID,
                Integer,
                Integer,
                String,
                String,
                String,
                String,
                String,
                String,
                String,
                String,
                Integer,
                JSONB> {

    private static final long serialVersionUID = 1L;

    /**
     * Setter for <code>ehr.ehr_folder_data.vo_id</code>.
     */
    public void setVoId(UUID value) {
        set(0, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.vo_id</code>.
     */
    public UUID getVoId() {
        return (UUID) get(0);
    }

    /**
     * Setter for <code>ehr.ehr_folder_data.num</code>.
     */
    public void setNum(Integer value) {
        set(1, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.num</code>.
     */
    public Integer getNum() {
        return (Integer) get(1);
    }

    /**
     * Setter for <code>ehr.ehr_folder_data.ehr_id</code>.
     */
    public void setEhrId(UUID value) {
        set(2, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.ehr_id</code>.
     */
    public UUID getEhrId() {
        return (UUID) get(2);
    }

    /**
     * Setter for <code>ehr.ehr_folder_data.ehr_folders_idx</code>.
     */
    public void setEhrFoldersIdx(Integer value) {
        set(3, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.ehr_folders_idx</code>.
     */
    public Integer getEhrFoldersIdx() {
        return (Integer) get(3);
    }

    /**
     * Setter for <code>ehr.ehr_folder_data.citem_num</code>.
     */
    public void setCitemNum(Integer value) {
        set(4, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.citem_num</code>.
     */
    public Integer getCitemNum() {
        return (Integer) get(4);
    }

    /**
     * Setter for <code>ehr.ehr_folder_data.rm_entity</code>.
     */
    public void setRmEntity(String value) {
        set(5, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.rm_entity</code>.
     */
    public String getRmEntity() {
        return (String) get(5);
    }

    /**
     * Setter for <code>ehr.ehr_folder_data.entity_concept</code>.
     */
    public void setEntityConcept(String value) {
        set(6, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.entity_concept</code>.
     */
    public String getEntityConcept() {
        return (String) get(6);
    }

    /**
     * Setter for <code>ehr.ehr_folder_data.entity_name</code>.
     */
    public void setEntityName(String value) {
        set(7, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.entity_name</code>.
     */
    public String getEntityName() {
        return (String) get(7);
    }

    /**
     * Setter for <code>ehr.ehr_folder_data.entity_attribute</code>.
     */
    public void setEntityAttribute(String value) {
        set(8, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.entity_attribute</code>.
     */
    public String getEntityAttribute() {
        return (String) get(8);
    }

    /**
     * Setter for <code>ehr.ehr_folder_data.entity_path</code>.
     */
    public void setEntityPath(String value) {
        set(9, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.entity_path</code>.
     */
    public String getEntityPath() {
        return (String) get(9);
    }

    /**
     * Setter for <code>ehr.ehr_folder_data.entity_path_cap</code>.
     */
    public void setEntityPathCap(String value) {
        set(10, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.entity_path_cap</code>.
     */
    public String getEntityPathCap() {
        return (String) get(10);
    }

    /**
     * Setter for <code>ehr.ehr_folder_data.entity_idx</code>.
     */
    public void setEntityIdx(String value) {
        set(11, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.entity_idx</code>.
     */
    public String getEntityIdx() {
        return (String) get(11);
    }

    /**
     * Setter for <code>ehr.ehr_folder_data.entity_idx_cap</code>.
     */
    public void setEntityIdxCap(String value) {
        set(12, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.entity_idx_cap</code>.
     */
    public String getEntityIdxCap() {
        return (String) get(12);
    }

    /**
     * Setter for <code>ehr.ehr_folder_data.entity_idx_len</code>.
     */
    public void setEntityIdxLen(Integer value) {
        set(13, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.entity_idx_len</code>.
     */
    public Integer getEntityIdxLen() {
        return (Integer) get(13);
    }

    /**
     * Setter for <code>ehr.ehr_folder_data.data</code>.
     */
    public void setData(JSONB value) {
        set(14, value);
    }

    /**
     * Getter for <code>ehr.ehr_folder_data.data</code>.
     */
    public JSONB getData() {
        return (JSONB) get(14);
    }

    // -------------------------------------------------------------------------
    // Primary key information
    // -------------------------------------------------------------------------

    @Override
    public Record3<UUID, Integer, Integer> key() {
        return (Record3) super.key();
    }

    // -------------------------------------------------------------------------
    // Record15 type implementation
    // -------------------------------------------------------------------------

    @Override
    public Row15<
                    UUID,
                    Integer,
                    UUID,
                    Integer,
                    Integer,
                    String,
                    String,
                    String,
                    String,
                    String,
                    String,
                    String,
                    String,
                    Integer,
                    JSONB>
            fieldsRow() {
        return (Row15) super.fieldsRow();
    }

    @Override
    public Row15<
                    UUID,
                    Integer,
                    UUID,
                    Integer,
                    Integer,
                    String,
                    String,
                    String,
                    String,
                    String,
                    String,
                    String,
                    String,
                    Integer,
                    JSONB>
            valuesRow() {
        return (Row15) super.valuesRow();
    }

    @Override
    public Field<UUID> field1() {
        return EhrFolderData.EHR_FOLDER_DATA.VO_ID;
    }

    @Override
    public Field<Integer> field2() {
        return EhrFolderData.EHR_FOLDER_DATA.NUM;
    }

    @Override
    public Field<UUID> field3() {
        return EhrFolderData.EHR_FOLDER_DATA.EHR_ID;
    }

    @Override
    public Field<Integer> field4() {
        return EhrFolderData.EHR_FOLDER_DATA.EHR_FOLDERS_IDX;
    }

    @Override
    public Field<Integer> field5() {
        return EhrFolderData.EHR_FOLDER_DATA.CITEM_NUM;
    }

    @Override
    public Field<String> field6() {
        return EhrFolderData.EHR_FOLDER_DATA.RM_ENTITY;
    }

    @Override
    public Field<String> field7() {
        return EhrFolderData.EHR_FOLDER_DATA.ENTITY_CONCEPT;
    }

    @Override
    public Field<String> field8() {
        return EhrFolderData.EHR_FOLDER_DATA.ENTITY_NAME;
    }

    @Override
    public Field<String> field9() {
        return EhrFolderData.EHR_FOLDER_DATA.ENTITY_ATTRIBUTE;
    }

    @Override
    public Field<String> field10() {
        return EhrFolderData.EHR_FOLDER_DATA.ENTITY_PATH;
    }

    @Override
    public Field<String> field11() {
        return EhrFolderData.EHR_FOLDER_DATA.ENTITY_PATH_CAP;
    }

    @Override
    public Field<String> field12() {
        return EhrFolderData.EHR_FOLDER_DATA.ENTITY_IDX;
    }

    @Override
    public Field<String> field13() {
        return EhrFolderData.EHR_FOLDER_DATA.ENTITY_IDX_CAP;
    }

    @Override
    public Field<Integer> field14() {
        return EhrFolderData.EHR_FOLDER_DATA.ENTITY_IDX_LEN;
    }

    @Override
    public Field<JSONB> field15() {
        return EhrFolderData.EHR_FOLDER_DATA.DATA;
    }

    @Override
    public UUID component1() {
        return getVoId();
    }

    @Override
    public Integer component2() {
        return getNum();
    }

    @Override
    public UUID component3() {
        return getEhrId();
    }

    @Override
    public Integer component4() {
        return getEhrFoldersIdx();
    }

    @Override
    public Integer component5() {
        return getCitemNum();
    }

    @Override
    public String component6() {
        return getRmEntity();
    }

    @Override
    public String component7() {
        return getEntityConcept();
    }

    @Override
    public String component8() {
        return getEntityName();
    }

    @Override
    public String component9() {
        return getEntityAttribute();
    }

    @Override
    public String component10() {
        return getEntityPath();
    }

    @Override
    public String component11() {
        return getEntityPathCap();
    }

    @Override
    public String component12() {
        return getEntityIdx();
    }

    @Override
    public String component13() {
        return getEntityIdxCap();
    }

    @Override
    public Integer component14() {
        return getEntityIdxLen();
    }

    @Override
    public JSONB component15() {
        return getData();
    }

    @Override
    public UUID value1() {
        return getVoId();
    }

    @Override
    public Integer value2() {
        return getNum();
    }

    @Override
    public UUID value3() {
        return getEhrId();
    }

    @Override
    public Integer value4() {
        return getEhrFoldersIdx();
    }

    @Override
    public Integer value5() {
        return getCitemNum();
    }

    @Override
    public String value6() {
        return getRmEntity();
    }

    @Override
    public String value7() {
        return getEntityConcept();
    }

    @Override
    public String value8() {
        return getEntityName();
    }

    @Override
    public String value9() {
        return getEntityAttribute();
    }

    @Override
    public String value10() {
        return getEntityPath();
    }

    @Override
    public String value11() {
        return getEntityPathCap();
    }

    @Override
    public String value12() {
        return getEntityIdx();
    }

    @Override
    public String value13() {
        return getEntityIdxCap();
    }

    @Override
    public Integer value14() {
        return getEntityIdxLen();
    }

    @Override
    public JSONB value15() {
        return getData();
    }

    @Override
    public EhrFolderDataRecord value1(UUID value) {
        setVoId(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord value2(Integer value) {
        setNum(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord value3(UUID value) {
        setEhrId(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord value4(Integer value) {
        setEhrFoldersIdx(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord value5(Integer value) {
        setCitemNum(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord value6(String value) {
        setRmEntity(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord value7(String value) {
        setEntityConcept(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord value8(String value) {
        setEntityName(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord value9(String value) {
        setEntityAttribute(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord value10(String value) {
        setEntityPath(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord value11(String value) {
        setEntityPathCap(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord value12(String value) {
        setEntityIdx(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord value13(String value) {
        setEntityIdxCap(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord value14(Integer value) {
        setEntityIdxLen(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord value15(JSONB value) {
        setData(value);
        return this;
    }

    @Override
    public EhrFolderDataRecord values(
            UUID value1,
            Integer value2,
            UUID value3,
            Integer value4,
            Integer value5,
            String value6,
            String value7,
            String value8,
            String value9,
            String value10,
            String value11,
            String value12,
            String value13,
            Integer value14,
            JSONB value15) {
        value1(value1);
        value2(value2);
        value3(value3);
        value4(value4);
        value5(value5);
        value6(value6);
        value7(value7);
        value8(value8);
        value9(value9);
        value10(value10);
        value11(value11);
        value12(value12);
        value13(value13);
        value14(value14);
        value15(value15);
        return this;
    }

    // -------------------------------------------------------------------------
    // Constructors
    // -------------------------------------------------------------------------

    /**
     * Create a detached EhrFolderDataRecord
     */
    public EhrFolderDataRecord() {
        super(EhrFolderData.EHR_FOLDER_DATA);
    }

    /**
     * Create a detached, initialised EhrFolderDataRecord
     */
    public EhrFolderDataRecord(
            UUID voId,
            Integer num,
            UUID ehrId,
            Integer ehrFoldersIdx,
            Integer citemNum,
            String rmEntity,
            String entityConcept,
            String entityName,
            String entityAttribute,
            String entityPath,
            String entityPathCap,
            String entityIdx,
            String entityIdxCap,
            Integer entityIdxLen,
            JSONB data) {
        super(EhrFolderData.EHR_FOLDER_DATA);

        setVoId(voId);
        setNum(num);
        setEhrId(ehrId);
        setEhrFoldersIdx(ehrFoldersIdx);
        setCitemNum(citemNum);
        setRmEntity(rmEntity);
        setEntityConcept(entityConcept);
        setEntityName(entityName);
        setEntityAttribute(entityAttribute);
        setEntityPath(entityPath);
        setEntityPathCap(entityPathCap);
        setEntityIdx(entityIdx);
        setEntityIdxCap(entityIdxCap);
        setEntityIdxLen(entityIdxLen);
        setData(data);
        resetChangedOnNotNull();
    }
}
